It is often beneficial to provide differing levels of service to different groups of customers. For example, service level differentiation allows key customers to be rewarded with a higher level of service. Service level differentiation also facilitates business models in which some customers pay higher fees in return for a higher level of service, while other customers pay lower fees but receive a lower level of service. Such business models may maximize revenue because customers placing a higher value on the service may pay more for a higher level of service than they would have under flat rate pricing. Conversely, if the price of a lower level of service is less than the flat rate price would have been, customers who would have been unwilling to pay the flat rate (and who would have thus provided zero revenue) may be willing to pay for the lower level of service.
Technology-based services may offer service level differentiation via differing service-level agreements. A service-level agreement is a contract or other promise that a customer will receive service according to certain minimum standards. Metrics subject to service-level agreements may include the rate of throughput at which data are transmitted, the maximum response time, the overall volume of data transmitted, the times of day at which data may be transmitted, the number of concurrent connections permitted and the probability that the service will be available at any given point in time (commonly known in the art as uptime.) A service-level agreement promising a higher level of service may have a higher price. For example, a service may charge US $5 per month for a service-level agreement guaranteeing a minimum download speed of 1 megabit per second but may charge US $10 per month for a service-level agreement guaranteeing a minimum download speed of 5 megabits per second.
Techniques are known in the art to impose upper or lower bounds on most of the metrics listed above. In some cases, imposing a limit is straightforward. To impose an upper bound on overall volume of data transmitted, for example, a system can simply refuse further data transfer once the limit has been reached. Ensuring a maximum response time, by contrast, is more challenging.